package com.emm.yixun.estate.service;

import java.util.List;

import javax.jws.WebService;

import com.emm.yixun.common.model.ProjectPremisesIndustData;
import com.emm.yixun.common.model.dto.ProjectPremisesIndustDataDto;
import com.emm.yixun.common.page.Page;
import com.emm.yixun.common.response.Response;
import com.emm.yixun.common.response.ResponseList;

@WebService
public interface ProjectPremisesIndustDataServiceFacade {
	/**
	 * 新增
	 */
	Response<ProjectPremisesIndustDataDto> save(ProjectPremisesIndustDataDto dto);

	/**
	 * 修改,当selective=true时修改非空列,当selective=false修改所有列
	 */
	Response<Integer> updateByPrimaryKey(ProjectPremisesIndustDataDto dto, Boolean selective);

	/**
	 * 逻辑删除
	 */
	Response<Integer> deleteByPrimaryKey(Long id);

	/**
	 * 主键查询
	 */
	Response<ProjectPremisesIndustData> findById(Long id);

	/**
	 * 根据dto查询记录
	 */
	ResponseList<ProjectPremisesIndustData> findByDto(ProjectPremisesIndustDataDto dto);

	/**
	 * 根据dto以及分页参数查询记录
	 */
	Page<ProjectPremisesIndustData> findPageByDto(ProjectPremisesIndustDataDto dto, Integer begin, Integer row);

	/**
	 * 物理删除 功能描述: <br>
	 * 〈功能详细描述〉
	 * 
	 * @param dataDto
	 * @return
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	Response<Boolean> destroy(ProjectPremisesIndustDataDto dataDto);
	
	/**
	 * 根据项目ID或组团ID查询业态数据
	 * 
	 * @param projectId，premisesId
	 * @return ProjectPremisesIndustData
	 */
	public ProjectPremisesIndustData selectIndustData(Long projectId, Long premisesId);
	
	public List<String> groupByIndustMark(Long premisesId);
	/**
	 * 
	 * queryIndustByBuilding:(分期或者项目下所有的楼栋业态). <br/>
	 * @author Administrator
	 * @param projectId
	 * @param premisesId
	 * @param industType
	 * @return
	 * @since JDK 1.6
	 */
	public ResponseList<ProjectPremisesIndustData> queryIndustByBuilding(Long projectId, Long premisesId,String industType);
	/**
	 * 
	 * queryIndustSum:(项目或者分期下所有同业态数据的汇总). <br/>
	 *
	 * @author Administrator
	 * @param projectId
	 * @param premisesId
	 * @param industType
	 * @return
	 * @since JDK 1.6
	 */
	public ResponseList<ProjectPremisesIndustData> queryIndustSum(Long projectId, Long premisesId,String industType);
}
